/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package logica;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 *
 * @author francisco tiapa
 */
public class ListaParticipanteXML {
    private List<ParticipanteXML> laLista_p;
    private Connection conexion;
    protected final Log logger = LogFactory.getLog(getClass());

    public ListaParticipanteXML() {
       laLista_p = new ArrayList<ParticipanteXML>();
    }
    // Se encarga de agregar participantes leidos por el xml en la lista
    public boolean AgregarCategroia(ParticipanteXML elUsuario)
    {
     return laLista_p.add(elUsuario);
    }
        //Este metodo muestra la lista por consola
        public void MostrarLista_p()
    {
       Iterator<ParticipanteXML> elIterator = laLista_p.iterator();

     while(elIterator.hasNext()==true)
      {
       ParticipanteXML elParticipante=elIterator.next();
       logger.info("Nombre: "+elParticipante.getNombre()+" Descripcion:"+elParticipante.getDescripcion()+
                       " id_participante "+elParticipante.getId_participante()+"id_evento: "+elParticipante.getId_evento()+"\n");
      }
    }
// Esta funcion borra primero los registros de la bases de datos y luego inserta lo leido en el xml en la bd de participantes y participante_eventos
            public void insertarparticipanteBd () throws SQLException
    {
        try {
        ConexionBD c = new ConexionBD();
        conexion = c.conectarBD();
        String query3 = "delete from participantes";
        PreparedStatement ps3 = conexion.prepareStatement(query3);
        int rs3 = ps3.executeUpdate();
        String query4 = "delete from evento_participantes";
        PreparedStatement ps4 = conexion.prepareStatement(query4);
        int rs4 = ps4.executeUpdate();
        Iterator<ParticipanteXML> elIterator = laLista_p.iterator();

     while(elIterator.hasNext()==true)
      {
       ParticipanteXML elObjeto=elIterator.next();
       String query = "insert into participantes values(?,?,?,?,?)";
       String query2 = "insert into evento_participantes values(?,?,?,?,?,?,?,?,?)";
       PreparedStatement ps = conexion.prepareStatement(query);
       PreparedStatement ps2 = conexion.prepareStatement(query2);
       ps.setInt(1,elObjeto.getId_participante());
       ps.setString(2,elObjeto.getNombre());
       ps.setString(3,elObjeto.getDescripcion());
       ps2.setString(4,elObjeto.getRelacion_pago());
       ps2.setString(5,elObjeto.getApuesta_maxima());
       ps2.setInt(6,elObjeto.getId_participante());
       ps2.setInt(7,elObjeto.getId_evento());
       int rs = ps.executeUpdate();
       int rs2 =ps2.executeUpdate();
      // conexion.close();

      }

        }
        catch (SQLException ex)
        {
            Logger.getLogger(LeeXML.class.getName()).log(Level.SEVERE, null, ex);
        }
        conexion.close();
}
    public List<ParticipanteXML> getLaLista_p() {
        return laLista_p;
    }

    public void setLaLista_p(List<ParticipanteXML> laLista_p) {
        this.laLista_p = laLista_p;
    }

}

